Expand description
This crate implements BLS signatures according to the IETF latest draft
for the Proof of Possession Cipher Suite
Since BLS signatures can use either G1 or G2 fields, there are two types of public keys and signatures.
Re-exports§
pub use vsss_rs;
Modules§
- The inner representation types
Structs§
- The BLS12381 G1 hash to public key group
- Represents BLS signatures on the BLS12-381 curve where Signatures are in G1 and Public Keys are in G2 or i.e. signatures are small and public keys are large
- The BLS12381 G1 hash to public key group
- Represents BLS signatures on the BLS12-381 curve where Signatures are in G2 and Public Keys are in G1 or i.e. signatures are large and public keys are small
- A BLS signature implementation
- An ElGamal ciphertext
- An ElGamal decryption key where the secret key is hidden or combined from shares that can decrypt ciphertext
- A public key share is a point on the curve Must be combined with other public key shares in order to decrypt a ciphertext
- A Discrete Log Proof tied to a specific ElGamal ciphertext
- The share type for points in G1
- The share type for points in G2
- An accumulated public key
- The proof of knowledge challenge value generated by the server in step 2 of the proof generation process
- A commitment secret used to create the proof of knowledge
- A signature proof of knowledge based on a timestamp
- A proof of possession of the secret key
- A BLS public key
- A public key share is point on the curve. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf Must be combined with other public key shares to produce the completed key, or used for creating partial signatures which can be combined into a complete signature
- The secret key is field element 0 <
x
<r
wherer
is the curve order. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf - A secret key share is field element 0 <
x
<r
wherer
is the curve order. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf Must be combined with other secret key shares to produce the completed key, or used for creating partial signatures which can be combined into a complete signature - The ciphertext output from sign crypt encryption
- A Signcrypt decryption key where the secret key is hidden or combined from shares that can decrypt ciphertext
- A public key share is point on the curve. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf Must be combined with other public key shares to produce the completed key, or used for creating partial signatures which can be combined into a complete signature
- The ciphertext output from time lock encryption
Enums§
- Represents a BLS signature for multiple signatures that signed different messages
- A convenience wrapper for the two BLS signature implementations that doesn’t require specifying the generics and can be used in trait object like situations.
- The error types generated by this library
- Represents a BLS signature for multiple signatures that signed different messages
- The commitment portion of the signature proof of knowledge
- A signature proof of knowledge
- A BLS secret key implementation that doesn’t expose the underlying curve and signature scheme and can be used in situations where the specific implementation is not known at compile time and where trait objects are desirable but can’t be used due to the lack of
Sized
trait. The downside is the type is now indicated with a byte or string for serialization and deserialization. If this is not desirable, then useSecretKey<C>
instead. - A BLS signature wrapped in the appropriate scheme used to generate it
- The BLS signature algorithm schemes
- Represents a share of a signature
Constants§
- Number of bytes needed to represent the secret key
Traits§
- The methods for implementing ElGamal encryption and derived ZKPs
- A trait that defines the BLS schemes that support multi-signatures
- A trait that defines the BLS schemes that support multi-signatures
- Serialization trait for inner types
- The methods for implementing SignCryption as described in https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.1717&rep=rep1&type=pdf
- BLS signature basic trait
- The core methods used by BLS signatures
- Types that implement BLS signatures
- BLS signature augmentation trait
- BLS signature proof of possession trait
- Methods for creating a signature proof of knowledge as in https://miracl.com/assets/pdf-downloads/mpin4.pdf
- Implement time lock encryption
- The hash to curve point methods
- The hash to scalar methods
- Operations that support pairing trait
Type Aliases§
- A BLS signature implementation using G1 for signatures and G2 for public keys
- A BLS signature implementation using G2 for signatures and G1 for public keys
- The result type generated by this library